package com.wechat.service.account.service.impl;

import com.wechat.service.account.dto.customMenu.*;
import com.wechat.service.account.dto.messageManage.replyUserMessage.ReplyImageTextItem;
import com.wechat.service.account.dto.messageManage.replyUserMessage.ReplyImageTextMessageDTO;
import com.wechat.service.account.dto.messageManage.replyUserMessage.ReplyTextMessageDTO;
import com.wechat.service.account.service.HandleMenuEventService;
import com.wechat.service.account.starter.messageManage.ReplyUserMessageService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @author： ygl
 * @date： 2019/07/11
 * @Description：
 * 默认的处理 用户点击服务号菜单 推送的事件
 */
@Slf4j
@Service
public class DefaultHandleMenuEventServiceImpl implements HandleMenuEventService {

    @Autowired
    private ReplyUserMessageService replyUserMessageService;

    @Override
    public Object handleGetMessageEvent(GetMessageEventReqDTO eventDTO) {
        log.warn("！！！！！！！！！！！！！这是系统默认的对点击菜单获取信息的响应结果，请用户自行实现HandleMenuEventService.handleGetMessageEvent完成自定义逻辑！！！！！！！！！！");
        // 1. 回复文本信息：
//        ReplyTextMessageDTO respDTO = new ReplyTextMessageDTO();
//        respDTO.setToUserName(eventDTO.getFromUserName());
//        respDTO.setFromUserName(eventDTO.getToUserName());
//        respDTO.setContent("＊这是系统默认的对点击菜单获取信息的响应结果＊");
//        return replyUserMessageService.replyTextMessage(respDTO);
        // 2. 回复图文消息
        ReplyImageTextMessageDTO msgDTO = new ReplyImageTextMessageDTO();
        msgDTO.setFromUserName(eventDTO.getToUserName());
        msgDTO.setToUserName(eventDTO.getFromUserName());
        List<ReplyImageTextItem> articles = new ArrayList<>();
        ReplyImageTextItem item1 = new ReplyImageTextItem();
        item1.setTitle("标题1");
        item1.setDescription("描述1");
        item1.setPicUrl("https://www.baidu.com/img/bd_logo1.png");
        item1.setUrl("https://www.baidu.com/");
        articles.add(item1);
        ReplyImageTextItem item2 = new ReplyImageTextItem();
        item2.setTitle("标题2");
        item2.setDescription("描述2");
        item2.setPicUrl("https://www.baidu.com/img/bd_logo1.png");
        item2.setUrl("https://www.baidu.com/");
        articles.add(item2);
        msgDTO.setArticles(articles);
        msgDTO.setArticleCount(articles.size());
        return replyUserMessageService.replyImageTextMessage(msgDTO);
    }

    @Override
    public Object handleJumpLinkEvent(JumpLinkEventReqDTO eventDTO) {
        log.warn("！！！！！！！！！！！！！这是系统默认的对点击菜单跳转链接的响应结果，请用户自行实现HandleMenuEventService.handleJumpLinkEvent完成自定义逻辑！！！！！！！！！！");
        return null;
    }

    @Override
    public Object handleScanCodeEvent(ScanCodeEventReqDTO eventDTO) {
        log.warn("！！！！！！！！！！！！！这是系统默认的对扫码推事件的事件推送的响应结果，请用户自行实现HandleMenuEventService.handleScanCodeEvent完成自定义逻辑！！！！！！！！！！");
        return null;
    }

    @Override
    public Object handleScanCodeWaitMsgEvent(ScanCodeEventReqDTO eventDTO) {
        log.warn("！！！！！！！！！！！！！这是系统默认的对扫码推事件且弹出“消息接收中”提示框的事件推送的响应结果，请用户自行实现HandleMenuEventService.handleScanCodeWaitMsgEvent！！！！！！！！！！");
        ReplyTextMessageDTO respDTO = new ReplyTextMessageDTO();
        respDTO.setToUserName(eventDTO.getFromUserName());
        respDTO.setFromUserName(eventDTO.getToUserName());
        respDTO.setContent("＊这是系统默认的对扫码推事件且弹出“消息接收中”提示框的事件推送的响应结果:"+ eventDTO.getScanCodeInfo().getScanResult()+"＊");
        return replyUserMessageService.replyTextMessage(respDTO);
    }

    @Override
    public Object handleLocationSelectEvent(LocationSelectEventReqDTO eventDTO) {
        log.warn("！！！！！！！！！！！！！这是系统默认的对弹出地理位置选择器的事件推送的响应结果，请用户自行实现HandleMenuEventService.handleLocationSelectEvent！！！！！！！！！！");
        return null;
    }

    @Override
    public Object handlePicSysphotoEvent(PicSysphotoEventReqDTO eventDTO) {
        log.warn("！！！！！！！！！！！！！这是系统默认的对弹出系统拍照发图的事件推送的响应结果，请用户自行实现HandleMenuEventService.handlePicSysphotoEvent！！！！！！！！！！");
        return null;
    }

    @Override
    public Object handlePicPhotoOrAlbumEvent(PicSysphotoEventReqDTO eventDTO) {
        log.warn("！！！！！！！！！！！！！这是系统默认的对弹出拍照或者相册发图的事件推送的响应结果，请用户自行实现HandleMenuEventService.handlePicPhotoOrAlbumEvent！！！！！！！！！！");
        return null;
    }

    @Override
    public Object handlePicWeixinEvent(PicSysphotoEventReqDTO eventDTO) {
        log.warn("！！！！！！！！！！！！！这是系统默认的对弹出微信相册发图器的事件推送的响应结果，请用户自行实现HandleMenuEventService.handlePicWeixinEvent！！！！！！！！！！");
        return null;
    }

    @Override
    public Object handleViewMiniProgramEvent(MiniProgramEventReqDTO eventDTO) {
        log.warn("！！！！！！！！！！！！！这是系统默认的对点击菜单跳转小程序的事件推送的响应结果，请用户自行实现HandleMenuEventService.handleViewMiniProgramEvent！！！！！！！！！！");
        return null;
    }
}
